{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import os\n",
    "import matplotlib.font_manager as fm\n",
    "import pandas as pd\n",
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "import pandas as pd\n",
    "from statsmodels.tsa.arima.model import ARIMA\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "from docx import Document"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 指定中文字体\n",
    "matplotlib.rcParams['font.sans-serif'] = ['SimHei']\n",
    "# 步骤1：读取数据\n",
    "original_1 = pd.read_excel('./results/第三问/各单品求加权成本加成定价.xlsx')\n",
    "# vegetable_categories = original_1.drop(original_1.columns[0], axis=1)\n",
    "# 步骤2: 转换日期格式并设置为索引\n",
    "original_1['销售日期'] = pd.to_datetime(original_1['销售日期'])\n",
    "original_1.set_index('销售日期', inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " 7.1日102900005115199 成本加成定价预测量: -0.0\n",
      " 7.1日102900005115250 成本加成定价预测量: 25.888789\n",
      " 7.1日102900005115625 成本加成定价预测量: 0.0\n",
      " 7.1日102900005115748 成本加成定价预测量: -0.0\n",
      " 7.1日102900005115762 成本加成定价预测量: 4.107454\n",
      " 7.1日102900005115779 成本加成定价预测量: 4.357044\n",
      " 7.1日102900005115786 成本加成定价预测量: 3.813742\n",
      " 7.1日102900005115793 成本加成定价预测量: 0.0\n",
      " 7.1日102900005115816 成本加成定价预测量: 0.0\n",
      " 7.1日102900005115823 成本加成定价预测量: 8.689069\n",
      " 7.1日102900005115854 成本加成定价预测量: 0.0\n",
      " 7.1日102900005115861 成本加成定价预测量: 0.0\n",
      " 7.1日102900005115878 成本加成定价预测量: 0.0\n",
      " 7.1日102900005115885 成本加成定价预测量: -0.0\n",
      " 7.1日102900005115908 成本加成定价预测量: 2.082343\n",
      " 7.1日102900005115946 成本加成定价预测量: 5.954183\n",
      " 7.1日102900005115960 成本加成定价预测量: 0.0\n",
      " 7.1日102900005115977 成本加成定价预测量: -0.0\n",
      " 7.1日102900005115984 成本加成定价预测量: 1.662787\n",
      " 7.1日102900005116219 成本加成定价预测量: 0.0\n",
      " 7.1日102900005116226 成本加成定价预测量: -0.0\n",
      " 7.1日102900005116233 成本加成定价预测量: 0.0\n",
      " 7.1日102900005116257 成本加成定价预测量: 6.227626\n",
      " 7.1日102900005116509 成本加成定价预测量: 4.306336\n",
      " 7.1日102900005116530 成本加成定价预测量: 0.0\n",
      " 7.1日102900005116547 成本加成定价预测量: 0.0\n",
      " 7.1日102900005116639 成本加成定价预测量: 0.0\n",
      " 7.1日102900005116714 成本加成定价预测量: 12.002865\n",
      " 7.1日102900005116790 成本加成定价预测量: 0.0\n",
      " 7.1日102900005116806 成本加成定价预测量: 0.0\n",
      " 7.1日102900005116837 成本加成定价预测量: 0.0\n",
      " 7.1日102900005116899 成本加成定价预测量: 14.8599\n",
      " 7.1日102900005116905 成本加成定价预测量: 0.0\n",
      " 7.1日102900005116912 成本加成定价预测量: -0.0\n",
      " 7.1日102900005116943 成本加成定价预测量: 0.0\n",
      " 7.1日102900005117056 成本加成定价预测量: 0.0\n",
      " 7.1日102900005117209 成本加成定价预测量: 0.0\n",
      " 7.1日102900005117353 成本加成定价预测量: 0.0\n",
      " 7.1日102900005118572 成本加成定价预测量: 0.0\n",
      " 7.1日102900005118817 成本加成定价预测量: 2.128891\n",
      " 7.1日102900005118824 成本加成定价预测量: 18.331636\n",
      " 7.1日102900005118831 成本加成定价预测量: 6.772778\n",
      " 7.1日102900005119098 成本加成定价预测量: 0.0\n",
      " 7.1日102900005119104 成本加成定价预测量: 0.0\n",
      " 7.1日102900005119944 成本加成定价预测量: -0.0\n",
      " 7.1日102900005119968 成本加成定价预测量: 0.0\n",
      " 7.1日102900005119975 成本加成定价预测量: 5.389763\n",
      " 7.1日102900005122654 成本加成定价预测量: -0.0\n",
      " 7.1日102900005123880 成本加成定价预测量: -0.0\n",
      " 7.1日102900005125808 成本加成定价预测量: 0.0\n",
      " 7.1日102900005125815 成本加成定价预测量: 0.0\n",
      " 7.1日102900005128748 成本加成定价预测量: 0.0\n",
      " 7.1日102900011000175 成本加成定价预测量: 0.0\n",
      " 7.1日102900011000328 成本加成定价预测量: 12.95462\n",
      " 7.1日102900011000335 成本加成定价预测量: 0.0\n",
      " 7.1日102900011000571 成本加成定价预测量: 0.0\n",
      " 7.1日102900011000632 成本加成定价预测量: -0.0\n",
      " 7.1日102900011000861 成本加成定价预测量: -0.0\n",
      " 7.1日102900011001219 成本加成定价预测量: -0.0\n",
      " 7.1日102900011001561 成本加成定价预测量: 0.0\n",
      " 7.1日102900011001691 成本加成定价预测量: 13.252392\n",
      " 7.1日102900011001806 成本加成定价预测量: 0.0\n",
      " 7.1日102900011001813 成本加成定价预测量: 0.0\n",
      " 7.1日102900011002414 成本加成定价预测量: 0.0\n",
      " 7.1日102900011006689 成本加成定价预测量: 0.0\n",
      " 7.1日102900011006948 成本加成定价预测量: 3.420254\n",
      " 7.1日102900011006955 成本加成定价预测量: -0.0\n",
      " 7.1日102900011007044 成本加成定价预测量: -0.0\n",
      " 7.1日102900011007464 成本加成定价预测量: -0.0\n",
      " 7.1日102900011007471 成本加成定价预测量: 0.0\n",
      " 7.1日102900011007495 成本加成定价预测量: 0.0\n",
      " 7.1日102900011007969 成本加成定价预测量: 10.297528\n",
      " 7.1日102900011008133 成本加成定价预测量: -0.0\n",
      " 7.1日102900011008164 成本加成定价预测量: 4.436636\n",
      " 7.1日102900011008485 成本加成定价预测量: 0.0\n",
      " 7.1日102900011008492 成本加成定价预测量: 0.0\n",
      " 7.1日102900011008515 成本加成定价预测量: 0.0\n",
      " 7.1日102900011008522 成本加成定价预测量: -0.0\n",
      " 7.1日102900011008577 成本加成定价预测量: 0.0\n",
      " 7.1日102900011008676 成本加成定价预测量: 0.0\n",
      " 7.1日102900011009246 成本加成定价预测量: 0.0\n",
      " 7.1日102900011009277 成本加成定价预测量: 0.0\n",
      " 7.1日102900011009444 成本加成定价预测量: 0.0\n",
      " 7.1日102900011009772 成本加成定价预测量: 0.0\n",
      " 7.1日102900011009970 成本加成定价预测量: -0.0\n",
      " 7.1日102900011010563 成本加成定价预测量: -0.0\n",
      " 7.1日102900011010891 成本加成定价预测量: -0.0\n",
      " 7.1日102900011011058 成本加成定价预测量: -0.0\n",
      " 7.1日102900011011546 成本加成定价预测量: 0.0\n",
      " 7.1日102900011011669 成本加成定价预测量: -0.0\n",
      " 7.1日102900011012482 成本加成定价预测量: 0.0\n",
      " 7.1日102900011012871 成本加成定价预测量: -0.0\n",
      " 7.1日102900011012994 成本加成定价预测量: 0.0\n",
      " 7.1日102900011013274 成本加成定价预测量: 4.270449\n",
      " 7.1日102900011015384 成本加成定价预测量: 0.0\n",
      " 7.1日102900011015391 成本加成定价预测量: 0.0\n",
      " 7.1日102900011016701 成本加成定价预测量: 5.416543\n",
      " 7.1日102900011016909 成本加成定价预测量: 0.0\n",
      " 7.1日102900011018095 成本加成定价预测量: 0.0\n",
      " 7.1日102900011018132 成本加成定价预测量: 26.365384\n",
      " 7.1日102900011021644 成本加成定价预测量: 0.0\n",
      " 7.1日102900011021675 成本加成定价预测量: 0.0\n",
      " 7.1日102900011021699 成本加成定价预测量: 0.0\n",
      " 7.1日102900011021842 成本加成定价预测量: 0.0\n",
      " 7.1日102900011022030 成本加成定价预测量: 0.0\n",
      " 7.1日102900011022764 成本加成定价预测量: 12.519175\n",
      " 7.1日102900011022849 成本加成定价预测量: 0.0\n",
      " 7.1日102900011022924 成本加成定价预测量: 0.0\n",
      " 7.1日102900011023075 成本加成定价预测量: 0.0\n",
      " 7.1日102900011023464 成本加成定价预测量: 5.51\n",
      " 7.1日102900011023976 成本加成定价预测量: 0.0\n",
      " 7.1日102900011024010 成本加成定价预测量: 0.0\n",
      " 7.1日102900011026502 成本加成定价预测量: 0.0\n",
      " 7.1日102900011026618 成本加成定价预测量: 0.0\n",
      " 7.1日102900011026793 成本加成定价预测量: 0.0\n",
      " 7.1日102900011027462 成本加成定价预测量: 0.0\n",
      " 7.1日102900011027479 成本加成定价预测量: -0.0\n",
      " 7.1日102900011027615 成本加成定价预测量: 0.0\n",
      " 7.1日102900011028407 成本加成定价预测量: 0.0\n",
      " 7.1日102900011029176 成本加成定价预测量: 0.0\n",
      " 7.1日102900011029275 成本加成定价预测量: 0.0\n",
      " 7.1日102900011029299 成本加成定价预测量: 0.0\n",
      " 7.1日102900011029305 成本加成定价预测量: 0.0\n",
      " 7.1日102900011029688 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030042 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030059 成本加成定价预测量: 5.223263\n",
      " 7.1日102900011030097 成本加成定价预测量: 4.573004\n",
      " 7.1日102900011030103 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030110 成本加成定价预测量: 5.927077\n",
      " 7.1日102900011030134 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030141 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030158 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030400 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030417 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030561 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030608 成本加成定价预测量: -0.0\n",
      " 7.1日102900011030615 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030622 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030639 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030905 成本加成定价预测量: -0.0\n",
      " 7.1日102900011030912 成本加成定价预测量: 0.0\n",
      " 7.1日102900011030929 成本加成定价预测量: 0.287293\n",
      " 7.1日102900011031100 成本加成定价预测量: 5.949011\n",
      " 7.1日102900011031216 成本加成定价预测量: 0.0\n",
      " 7.1日102900011031582 成本加成定价预测量: 0.0\n",
      " 7.1日102900011031599 成本加成定价预测量: 0.0\n",
      " 7.1日102900011031735 成本加成定价预测量: 0.0\n",
      " 7.1日102900011031742 成本加成定价预测量: 0.0\n",
      " 7.1日102900011031759 成本加成定价预测量: 0.0\n",
      " 7.1日102900011031841 成本加成定价预测量: 0.0\n",
      " 7.1日102900011031858 成本加成定价预测量: 0.0\n",
      " 7.1日102900011031926 成本加成定价预测量: 3.827742\n",
      " 7.1日102900011031995 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032022 成本加成定价预测量: 2.805999\n",
      " 7.1日102900011032114 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032176 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032206 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032213 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032220 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032237 成本加成定价预测量: 0.133554\n",
      " 7.1日102900011032244 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032251 成本加成定价预测量: 5.756864\n",
      " 7.1日102900011032282 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032343 成本加成定价预测量: 11.58398\n",
      " 7.1日102900011032350 成本加成定价预测量: -0.0\n",
      " 7.1日102900011032367 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032480 成本加成定价预测量: -0.0\n",
      " 7.1日102900011032589 成本加成定价预测量: -0.0\n",
      " 7.1日102900011032619 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032626 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032633 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032640 成本加成定价预测量: -0.0\n",
      " 7.1日102900011032732 成本加成定价预测量: 14.029366\n",
      " 7.1日102900011032787 成本加成定价预测量: 0.0\n",
      " 7.1日102900011032848 成本加成定价预测量: 4.872024\n",
      " 7.1日102900011033081 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033173 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033234 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033241 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033531 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033562 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033586 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033906 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033913 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033920 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033937 成本加成定价预测量: -0.0\n",
      " 7.1日102900011033944 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033968 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033975 成本加成定价预测量: 0.0\n",
      " 7.1日102900011033982 成本加成定价预测量: 3.728856\n",
      " 7.1日102900011033999 成本加成定价预测量: 0.0\n",
      " 7.1日102900011034026 成本加成定价预测量: 7.068114\n",
      " 7.1日102900011034200 成本加成定价预测量: 0.0\n",
      " 7.1日102900011034217 成本加成定价预测量: 0.0\n",
      " 7.1日102900011034224 成本加成定价预测量: 0.0\n",
      " 7.1日102900011034231 成本加成定价预测量: 0.0\n",
      " 7.1日102900011034262 成本加成定价预测量: 0.0\n",
      " 7.1日102900011034316 成本加成定价预测量: 0.0\n",
      " 7.1日102900011034323 成本加成定价预测量: 0.0\n",
      " 7.1日102900011034330 成本加成定价预测量: 5.009969\n",
      " 7.1日102900011034354 成本加成定价预测量: 0.0\n",
      " 7.1日102900011034439 成本加成定价预测量: 5.919342\n",
      " 7.1日102900011034538 成本加成定价预测量: 0.0\n",
      " 7.1日102900011034569 成本加成定价预测量: 0.0\n",
      " 7.1日102900011034705 成本加成定价预测量: 0.0\n",
      " 7.1日102900011035078 成本加成定价预测量: 20.031691\n",
      " 7.1日102900011035481 成本加成定价预测量: 0.0\n",
      " 7.1日102900011035511 成本加成定价预测量: 0.0\n",
      " 7.1日102900011035740 成本加成定价预测量: 2.692434\n",
      " 7.1日102900011035764 成本加成定价预测量: 0.0\n",
      " 7.1日102900011035771 成本加成定价预测量: 0.0\n",
      " 7.1日102900011035788 成本加成定价预测量: 0.0\n",
      " 7.1日102900011035849 成本加成定价预测量: 0.0\n",
      " 7.1日102900011035962 成本加成定价预测量: 0.0\n",
      " 7.1日102900011036068 成本加成定价预测量: 0.0\n",
      " 7.1日102900011036242 成本加成定价预测量: 0.0\n",
      " 7.1日102900011036266 成本加成定价预测量: 0.0\n",
      " 7.1日102900011036686 成本加成定价预测量: 3.385863\n",
      " 7.1日102900051000463 成本加成定价预测量: 5.443762\n",
      " 7.1日102900051000890 成本加成定价预测量: 0.0\n",
      " 7.1日102900051000944 成本加成定价预测量: 25.4481\n",
      " 7.1日102900051004294 成本加成定价预测量: 0.0\n",
      " 7.1日102900051006229 成本加成定价预测量: 0.0\n",
      " 7.1日102900051009220 成本加成定价预测量: 0.0\n",
      " 7.1日102900051009336 成本加成定价预测量: -0.0\n",
      " 7.1日102900051010455 成本加成定价预测量: 0.0\n",
      " 7.1日102900051010790 成本加成定价预测量: -0.0\n",
      " 7.1日106930274220092 成本加成定价预测量: -0.0\n",
      " 7.1日106930274620090 成本加成定价预测量: 0.0\n",
      " 7.1日106931885000035 成本加成定价预测量: 0.0\n",
      " 7.1日106931885000356 成本加成定价预测量: 0.0\n",
      " 7.1日106949711300068 成本加成定价预测量: 0.0\n",
      " 7.1日106949711300167 成本加成定价预测量: 0.0\n",
      " 7.1日106949711300259 成本加成定价预测量: 1.963117\n",
      " 7.1日106956146480197 成本加成定价预测量: 0.0\n",
      " 7.1日106956146480203 成本加成定价预测量: 0.0\n",
      " 7.1日106957634300010 成本加成定价预测量: 0.0\n",
      " 7.1日106957634300058 成本加成定价预测量: 0.0\n",
      " 7.1日106958851400125 成本加成定价预测量: 0.0\n",
      " 7.1日106971533450003 成本加成定价预测量: 2.624117\n",
      " 7.1日106971533455008 成本加成定价预测量: 0.0\n",
      " 7.1日106971563780002 成本加成定价预测量: 0.0\n",
      " 7.1日106972776821582 成本加成定价预测量: -0.0\n",
      " 7.1日106973223300667 成本加成定价预测量: 0.0\n",
      " 7.1日106973990980123 成本加成定价预测量: 0.0\n"
     ]
    }
   ],
   "source": [
    "# 步骤3: 获取所有蔬菜单品\n",
    "vegetables = original_1.columns\n",
    "\n",
    "# 步骤3: 循环预测\n",
    "forecast_steps = 1  # 预测未来一天的成本加成定价\n",
    "\n",
    "# 创建一个空的DataFrame\n",
    "df = pd.DataFrame()\n",
    "\n",
    "for i in range(1, 246):  # 从索引值1循环到245\n",
    "    # 步骤4: 选择一个蔬菜品类进行分析\n",
    "    specific_vegetable_data = original_1[vegetables[i]]\n",
    "\n",
    "    # 步骤5: 建立ARIMA模型\n",
    "    model = ARIMA(specific_vegetable_data, order=(5, 1, 0))\n",
    "    model_fit = model.fit()\n",
    "\n",
    "    # 步骤6: 进行预测\n",
    "    forecast = model_fit.forecast(steps=forecast_steps)\n",
    "    rounded_forecast = round(forecast.values[0], 6)  # 提取数值部分并保留6位小数\n",
    "\n",
    "    # 步骤7: 可视化结果\n",
    "\n",
    "    # plt.plot(specific_vegetable_data.index, specific_vegetable_data.values, label='Historical Daily Sales')\n",
    "    # plt.plot(pd.date_range(start=specific_vegetable_data.index[-1], periods=forecast_steps+1)[1:], forecast, label='Forecasted Daily Sales', color='red')\n",
    "    # plt.xlabel('Date')\n",
    "    # plt.ylabel('Sales (kg)')\n",
    "    # plt.title(f' {vegetable_categories[i]} 成本加成定价预测')  # 根据索引的列名设置标题\n",
    "    # plt.legend()\n",
    "    # plt.show()\n",
    "\n",
    "    print(f' 7.1日{vegetables[i]} 成本加成定价预测量:', rounded_forecast)  # 根据索引的列名打印预测值\n",
    "\n",
    "\n",
    "    # 将每次循环的数据追加到df中\n",
    "    df = pd.concat([df, pd.DataFrame({'单品名称': [vegetables[i]], '7.1日成本加成定价预测量': [rounded_forecast]})], ignore_index=True)    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "    # 导出DataFrame对象为Excel文件\n",
    "df.to_excel('./results/第三问/单品7.1成本加成定价预测.xlsx', index=False)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.4"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
